#pragma once
#include <vector>
#include "DataStruct.h"
using namespace std;

/*!
 * \class CElement
 *
 * \brief Class for the mesh element and finite element, T(Tb).
 *
 * \author wanyzh
 * \date Jan 2021
 */
class CElement
{
	
public:
	CElement() {}
	~CElement() {}
	const vector<unsigned int>& getIds() { return _ids; }
	void clear() { _ids.clear(); }
	void append(const unsigned int id) { _ids.push_back(id); }
	void resize(const unsigned int size) { _ids.resize(size); }
	const int get_ele_node_num() { return _ids.size(); }
	const ELE_TYPE get_ele_type() { return ele_type; }
	void set_ele_type(ELE_TYPE et) { ele_type = et; }
	const BASIS_TYPE getBasisType(map<ELE_TYPE, BASIS_TYPE>ELE_BASIS);

private:
	vector<unsigned int> _ids;
	ELE_TYPE ele_type;

};

